﻿using IntelligentGateway.Model;
using IntelligentGateway.Model.Maichi;
using IntelligentGateway.Tools;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Intrinsics.Arm;
using System.Text;
using System.Threading.Tasks;

namespace IntelligentGateway.Services
{
    //public class IGTCPClientMessageProcess
    //{
    //    public static bool ProcessOutCall(SignalPoint Data)
    //    {
    //        byte[] data = new byte[13]
    //        {
    //            0xA7,0x00,0x01,0x10,0x01,0x00,0x00,0x03,0x0E,0x01,0x00,0x00,0x00
    //        };
    //        byte value = ConvertValue(Data.RecordValue); 
    //        data[10] =value;
    //        byte[] crcByte = new byte[11] { data[0], data[1], data[2], data[3],
    //                                        data[4], data[5], data[6], data[7],
    //                                        data[8], data[9], data[10] };
    //        byte[] crcValue = UTools.ComputeCrc16(crcByte);
    //        if(crcValue.Length ==2 )
    //        {
    //            data[11] = data[1];
    //            data[12] = data[2];
    //        }
    //        GlobalVariables.IGTCPClient.SendData(data);
    //        return true;
    //    }
    //    public static bool ProcessInCall(SignalPoint Data)
    //    {
    //        byte[] data = new byte[14]
    //        {
    //            0xA7,0x00,0x01,0x10,0x01,0x00,0x00,0x03,0x0C,0x02,0x20,0xA0,0xB0,0xE9
    //        };
    //        byte value = ConvertValue(Data.RecordValue);
    //        byte authvalue = ConvertValue(Data.AuthorizeValue);
    //        data[9] = 0x02;
    //        data[10] = value;
    //        data[11] = authvalue;
    //        byte[] crcByte = new byte[12] { data[0], data[1], data[2], data[3],
    //                                        data[4], data[5], data[6], data[7],
    //                                        data[8], data[9], data[10],data[11] };
    //        byte[] crcValue = UTools.ComputeCrc16(crcByte);
    //        if (crcValue.Length == 2)
    //        {
    //            data[11] = data[1];
    //            data[12] = data[2];
    //        }
    //        GlobalVariables.IGTCPClient.SendData(data);
    //        return true;
    //    }
    //    private static byte ConvertValue(string Value)
    //    {
    //        string[] str = Value.Split(',');
    //        if (str.Length != 2) { return 0; }
    //        byte addressByte = (byte)(byte.Parse(str[0])&0xC0);
    //        byte addressbit = (byte)(byte.Parse(str[1]) - 1);
    //        byte newValue = (byte)((addressByte << 2) + addressByte);
    //        return newValue;

    //    }
    //}
}
